package com.zte.sys.modules.control;

import com.zte.sys.modules.model.MModule;
import com.zte.sys.modules.model.MModuleCondition;
import com.zte.sys.modules.service.IMModuleService;
import com.zte.util.OperatorLog;
import com.zte.util.PageModel;
import com.zte.util.ResultMessage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;

@Controller
public class MModuleAction {

    @Autowired
    private IMModuleService moduleService;

    //分页查询
    @RequestMapping("/modules/pageModule")
    @ResponseBody
    @OperatorLog(operate="模块分页条件查询", module="模块管理")
    public ResultMessage pageModule(MModuleCondition conn, PageModel<MModule> pageModel) {
        PageModel<MModule> modules = moduleService.queryMModulePageByCondition(conn,pageModel);
        ResultMessage rm = new ResultMessage();
        if (modules != null) {
            rm.setFlag(true);
            rm.setStatus(200);
            rm.setMsg("查询成功！");
            rm.setData(modules);
        } else {
            rm.setFlag(false);
            rm.setStatus(500);
            rm.setMsg("查询失败！");
            rm.setData(modules);
        }
        return rm;
    }

    //详情
    @RequestMapping("sys/modules/moduleView")
    public String moduleView(){
        return "sys/modules/moduleView";
    }
    @RequestMapping("/modules/moduleDetail")
    @ResponseBody
    @OperatorLog(operate="模块详情", module="模块管理")
    public ResultMessage queryModuleByModuleId(String moduleId) throws Exception{
        MModule module = null;
        if(moduleId != null){
            module = moduleService.queryMModuleByMModuleId(moduleId);
        }
        ResultMessage rm = new ResultMessage();
        if (module != null) {
            rm.setFlag(false);
            rm.setStatus(400);
            rm.setMsg("模块已存在！");
            rm.setData(module);
        } else if(moduleId == null){
            rm.setFlag(false);
            rm.setStatus(401);
            rm.setMsg("请输入用户编号！");
        }else if(!moduleId.equals("")){
            rm.setFlag(true);
            rm.setStatus(200);
            rm.setMsg("成功");
        }
        return rm;
    }


    //父模块查询
    @RequestMapping("/modules/moduleDetail2")
    @ResponseBody
    public ResultMessage queryMModuleByMModulePid(String modulePid) {
        List<MModule> mModules = moduleService.queryMModuleByMModulePid(modulePid);
        ResultMessage rm = new ResultMessage();
        if(mModules!=null){
            rm.setFlag(true);
            rm.setStatus(200);
            rm.setMsg("查询成功！");
            rm.setData(mModules);
        }else {
            rm.setFlag(false);
            rm.setStatus(400);
            rm.setMsg("查询失败！");
        }
        return rm;
    }


    //添加
    @RequestMapping("sys/modules/moduleAdd")
    public String moduleAdd(){
        return "sys/modules/moduleAdd";
    }
    @RequestMapping("/modules/moduleAdd")
    @ResponseBody
    @OperatorLog(operate="添加模块", module="模块管理")
    public ResultMessage addModule(MModule module){
        int i = moduleService.addMModule(module);
        ResultMessage rm = new ResultMessage();
        if (i == 1) {
            rm.setFlag(true);
            rm.setStatus(200);
            rm.setMsg("添加成功！");
            rm.setData(module);
        } else {
            rm.setFlag(false);
            rm.setStatus(400);
            rm.setMsg("添加失败！");
        }
        return rm;
    }

    //修改
    @RequestMapping("sys/modules/moduleUpdate")
    public String moduleUpdate(){
        return "sys/modules/moduleUpdate";
    }
    @RequestMapping("/modules/updateModule")
    @ResponseBody
    @OperatorLog(operate="修改模块 ", module="模块管理")
    public ResultMessage updateModule(MModule module){
        int i = moduleService.updateMModule(module);
        ResultMessage rm = new ResultMessage();
        if (i == 1) {
            rm.setFlag(true);
            rm.setStatus(200);
            rm.setMsg("修改成功！");
            rm.setData(module);
        } else {
            rm.setFlag(false);
            rm.setStatus(400);
            rm.setMsg("修改失败！");
        }
        return rm;
    }

    @RequestMapping("/modules/updateModuleState")
    @ResponseBody
    @OperatorLog(operate="修改模块的状态", module="模块管理")
    public ResultMessage updateMModuleState(MModule module){
        int i = moduleService.updateMModuleState(module);
        ResultMessage rm = new ResultMessage();
        if (i == 1) {
            rm.setFlag(true);
            rm.setStatus(200);
            rm.setMsg("修改成功！");
            rm.setData(module);
        } else {
            rm.setFlag(false);
            rm.setStatus(400);
            rm.setMsg("修改失败！");
        }
        return rm;
    }
}
